
//文本文件中有以下的数据
//219478
//
//将数据进行排序后写会去
//124789
//
//流式表达式

import java.io.*;
import java.nio.file.Files;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;

public class Java005 {
    public static void main(String[] args) throws IOException {
        File f1=new File("f1.txt");
        CREATE(f1);
        SORT(f1);

    }
    public static void CREATE(File f1) throws IOException {
        f1.createNewFile();

        FileOutputStream fos=new FileOutputStream(f1);
        byte[] b =new byte[]{'2','1','9','4','7','8'};
        fos.write(b);
        fos.close();

    }

//    public static void SORT(File f1) throws IOException {
//        byte[] b = new byte[10];
//        int len;
//        ArrayList<Byte> list = new ArrayList<>();
//
//        try (FileInputStream fis = new FileInputStream(f1)) {
//            len = fis.read(b);
//            if (len == -1) {
//                System.out.println("数据为空");
//                return;
//            }
//
//            for (int i = 0; i < len; i++) {
//                list.add(b[i]);
//            }
//        }
//
//        Collections.sort(list);
//        byte[] end = new byte[list.size()];
//        for (int i = 0; i < list.size(); i++) {
//            end[i] = list.get(i);
//        }
//
//        try (FileOutputStream fos = new FileOutputStream(f1)) {
//            fos.write(end);
//        }
//
//    }

    public static void SORT(File f1) throws IOException{
        List<Integer> list = Files.lines(f1.toPath())
                .flatMap(line -> line.chars().mapToObj(ch -> (char) ch))
                .map(Character::getNumericValue)
                .sorted().collect(Collectors.toList());

        try(FileOutputStream fos = new FileOutputStream(f1)){
            String end =list.stream().map(String::valueOf).collect(Collectors.joining());
            byte[] b = end.getBytes();
            fos.write(b);
        }


    }

}
